package com.ww.basic.implicits

/**
 * 隐式类
 * 给现有类“无侵入式扩展方法”
 * ①隐式类必须定义在object、trait或class内部（Scala2限制，Scala3已取消）
 * ②构造器必须只有一个参数（要扩展的目标类型）
 */
object Test2 {
  implicit class RichQuantStrings(s: String) {
    def toDoubleSafe: Double = {
      if (s == null || s.trim.isEmpty) 0.0
      else s.toDouble
    }

    def addSuffix(suffix: String): String = s + "_" + suffix // 给行情代码加后缀
  }

  def main(args: Array[String]): Unit = {
    val priceStr = "3.14"
    println(priceStr.toDoubleSafe) // 3.14
    println("600036".addSuffix("SH")) // 600036_SH
  }
}
